//package org.wen.videotool;
//
//import org.bytedeco.ffmpeg.global.avcodec;
//import org.bytedeco.javacv.FFmpegFrameRecorder;
//import org.bytedeco.javacv.Java2DFrameConverter;
//
//import java.awt.image.BufferedImage;
//public class JavaCVEncoder {
//
//    public static void main(String[] args) throws Exception {
//        // 视频参数
//        int width = 1280;
//        int height = 720;
//        double fps = 30;
//
//        // 音频参数
//        int sampleRate = 44100;
//        int audioChannels = 2;
//
//        // 初始化编码器
//        FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(
//                "111.mp4", width, height, audioChannels
//        );
//        recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264);
//        recorder.setAudioCodec(avcodec.AV_CODEC_ID_AAC);
//        recorder.setFormat("mp4");
//        recorder.setFrameRate(fps);
//        recorder.setSampleRate(sampleRate);
//        recorder.setVideoBitrate(2_000_000);
//        recorder.setAudioBitrate(128_000);
//        recorder.start();
//
//        // 生成测试内容
//        Java2DFrameConverter converter = new Java2DFrameConverter();
//        for (int i = 0; i < 300; i++) { // 10秒视频（30fps）
//            // 生成测试画面（红色渐变）
//            BufferedImage frame = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
//            for (int y = 0; y < height; y++) {
//                int alpha = (int) (255 * (i / 300.0));
//                for (int x = 0; x < width; x++) {
//                    frame.setRGB(x, y, (alpha << 16) | (0 << 8) | 0);
//                }
//            }
//
//            // 生成测试音频（正弦波）
//            double[] samples = new double[(int) (sampleRate / fps)];
//            for (int j = 0; j < samples.length; j++) {
//                samples[j] = Math.sin(2 * Math.PI * 440 * j / sampleRate); // 440Hz 音调
//            }
//
//            // 编码音视频帧
//            recorder.record(converter.getFrame(frame));
//            recorder.recordSamples(sampleRate, audioChannels, samples);
//        }
//
//        recorder.stop();
//        System.out.println("编码完成！输出文件：output.mp4");
//    }
//}
